# 1. 字符串常见操作
from tkinter.font import names

## 1.1 字符串拼接
print('10' + '10') # 1010

## 1.2 * 重复输出
print("好好学习 " * 10) # 好好学习 好好学习 好好学习 好好学习 好好学习 好好学习 好好学习 好好学习 好好学习 好好学习


## 1.3 成员运算符 -- 检查字符串中是否包含某个子字符串 -> in
str1 = "aavvbbbxx"
print("vb" in str1) # True
print("avv" not in str1) # False

## 1.4 下标/索引
str2 = "aabbccdd"
print(str2[2]) # b
print(str2[-3]) # c

## 1.5 切片 -> 指对操作的对象截取其中一部分的操作 -> [start:stop:步长] (左闭右开区间)
str3 = "abcdefghijk"
print(str3[0:3]) # abc
print(str3[0:100]) # abcdefghijk
print(str3[3:]) # defghijk -> 后面全部截取到
print(str3[::2]) #acegik
print(str3[::-1]) # kjihgfedcba -> 步长的绝对值表示切取的间隙,正负表示切取的方向


## 1.6 查找
### (1) find -> 检查子字符串是否存在 在 -> 开始下标 不在 -> -1 (左闭右开区间)
str4 = "111222333"
str5 = "112"
print(str4.find(str5)) # 1
print(str4.find(str5,4,7)) # -1


### (2) index -> 如find ,但是如果没找到报异常

### (3) count -> 某个子字符串在字符串出现的次数(左闭右开区间)
print(str4.count('1')) # 3
print(str4.count('1',3)) # 0


## 1.7 判断
# (1) 判断开头
str6 = "im hello"
print(str6.startswith("im")) # True
print(str6.startswith("im",2)) # False

# (2) 判断结尾
print(str6.endswith("lo")) # True

# (3) 是否全部是大写?
print(str6.isupper()) #False
# (4) 是否都是小写?
print(str6.islower()) #True


## 1.8 修改元素
### (1) replace
str7 = "好好学习 天天向上"
print(str7.replace("好","时")) # 时时学习 天天向上
print(str7.replace("好","时",1))  # 时好学习 天天向上

### (2)split
str8 = "127.0.0.1"
print(str8.split('.')) #['127', '0', '0', '1']
print(str8.split('.',2)) #['127', '0', '0.1']

### (3)capitalize 第一个字符大写
str9 = "im weicanbin"
print(str9.capitalize()) # Im weicanbin

### (4) lower upper
str9 = "aabbccDDSS"
print(str9.lower()) #aabbccddss
print(str9.upper()) #AABBCCDDSS
